1. Field of the Invention
The present invention relates to the field of computer system buses. More particularly, the present invention relates to arbitration protocols for computer system buses designed for servicing multiple processors and I/O devices.
2. Related Art
In modern computer systems, multiple agents are often coupled to a bus and arbitrate for the use of the bus. An arbitration protocol determines which agent has ownership of the bus at any given time. A computer system may include multiple processors, or similar devices, that are somewhat alike in their bus usage requirements. The system may also include various I/O or similar devices. It is advantageous to meet the bus bandwidth and latency requirements of all such agents in a well designed bus arbitration protocol. The bus bandwith requirement of an agent is the percentage of time, on average, that the particular agent requires use of the bus. The latency requirement of an agent is the maximum amount of time that the agent can wait before obtaining ownership of the bus.
In one arbitration scheme a central arbiter receives requests for the use of the bus from the individual agents and selectively grants ownership of the bus. This scheme offers flexibility because computer system designers can individually determine a priority scheme among the agents by customizing the central arbiter. Two drawbacks of this approach are: 1) a costly central arbiter is required, and 2) it has a long latency of bus exchange between multiple agents.
In another arbitration scheme, the agents are daisy-chained. In this scheme arbitration priority between the various agents goes from highest to lowest priority. Two drawbacks of this scheme are inflexibility and long arbitration latency.
It would be advantageous to provide an arbitration protocol that requires no external central arbitration logic and provides low latency of bus exchange between multiple agents. The present invention provides such an advantageous result.
It is common in computer systems to couple various types of agents to a computer system bus. For example, multiple processors along with I/O devices such as mass storage devices and memory devices are often coupled to the computer system bus. These agents have varying bus bandwidth and latency requirements. A processor agent may use the bus 20% of the time while an I/O agent may use the bus far less than 1% of the time. However, compared to a processor an I/O device typically has a relatively low bus latency requirement to avoid overflow or underflow conditions imposed by their limited internal buffering. Therefore, I/O devices should obtain usage of the bus as soon as possible to meet their low latency requirement thereby avoiding system retries. An overall arbitration protocol should account for the needs of different types of bus agents. The present invention provides such an advantageous result.
Many modern computer systems can have a varying number of bus agents. The number of agents on a particular bus may vary between systems, or may vary over time for a given system. Thus, it would be advantageous to provide a versatile arbitration protocol which supports a varying number of agents with minimal additional logic and expense. The present invention provides such an advantageous result.
In summary, to overcome problems with prior art arbitration protocols it would be advantageous for an arbitration protocol: 1) to provide for varying numbers of agents on the bus without requiring additional external logic (i.e., the protocol should be "glueless"); 2) to be fair in arbitrating between agents with similar bandwidth and latency requirements, referred to as "symmetric agents"; 3) to provide a small latency bus exchange between multiple agents; 4) to accommodate burst accesses by agents; 5) to provide flexibility to meet the requirements of I/O or other such devices, referred to as "priority agents"; 6) to meet the worst case arbitration latency for I/O devices; and 7) to allow one clock cycle for signal transmission between multiple agents and a separate clock cycle for the agents to respond, referred to as a "latched bus". The present invention provides these and other advantageous results. However, the arbitration protocol of the present invention can also be used in a non "latched bus" environment.